import Vue from 'vue'
import App from '@/App'
import router from '@/router'                 // api: https://github.com/vuejs/vue-router
import store from '@/store'                   // api: https://github.com/vuejs/vuex
import VueCookie from 'vue-cookie'            // api: https://github.com/alfhen/vue-cookie
import '@/element-ui'                         // api: https://github.com/ElemeFE/element
import '@/icons'                              // api: http://www.iconfont.cn/
import '@/element-ui-theme'
import '@/assets/scss/index.scss'
import '@/assets/icon/iconfont.css'
import i18n from '@/lang' // Internationalization
import httpRequest from '@/utils/httpRequest' // api: https://github.com/axios/axios
import {isAuth} from '@/utils'
import cloneDeep from 'lodash/cloneDeep'
// 自定制import部分开始

import config from '@/service/config'
// 定制：导出excel
import JsonExcel from 'vue-json-excel'
// 定制：解析markdown
import mavonEditor from 'mavon-editor'  // https://github.com/hinesboy/mavonEditor
import 'mavon-editor/dist/css/index.css'
// 定制：右键菜单
import VueContextMenu from 'vue-contextmenu'
import 'vue-contextmenu/style/css/font-awesome.min.css'
// 定制：页面打印
import Print from 'vue-print-nb'
// 定制：时间函数
import moment from 'moment'
// 自定制import部分结束

// 定制挂载部分开始

// 定制：右键菜单
Vue.use(VueContextMenu)
// 定制：导出excel
Vue.component('downloadExcel', JsonExcel)
// 定制：markdown编辑
Vue.use(mavonEditor)
// 定制：页面打印
Vue.use(Print)
// 定制：时间函数
Vue.prototype.moment = moment
// 定制导入文件
Vue.prototype.config = config

// 定制挂载部分结束

Vue.use(VueCookie)
Vue.config.productionTip = false

// 非生产环境, 适配mockjs模拟数据                 // api: https://github.com/nuysoft/Mock
if (process.env.NODE_ENV !== 'production') {
  require('@/mock')
}

// 挂载全局
Vue.prototype.$http = httpRequest // ajax请求方法
Vue.prototype.isAuth = isAuth     // 权限方法

// 保存整站vuex本地储存初始状态
window.SITE_CONFIG['storeState'] = cloneDeep(store.state)

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  i18n,
  template: '<App/>',
  components: {App}
})
